home *** CD-ROM | disk | FTP | other *** search
- ------------------------------------------------------------------------
- -- tointegral.decTest -- round decimal to integral value --
- -- Copyright (c) IBM Corporation, 2001, 2003. All rights reserved. --
- ------------------------------------------------------------------------
- -- Please see the document "General Decimal Arithmetic Testcases" --
- -- at http://www2.hursley.ibm.com/decimal for the description of --
- -- these testcases. --
- -- --
- -- These testcases are experimental ('beta' versions), and they --
- -- may contain errors. They are offered on an as-is basis. In --
- -- particular, achieving the same results as the tests here is not --
- -- a guarantee that an implementation complies with any Standard --
- -- or specification. The tests are not exhaustive. --
- -- --
- -- Please send comments, suggestions, and corrections to the author: --
- -- Mike Cowlishaw, IBM Fellow --
- -- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK --
- -- mfc@uk.ibm.com --
- ------------------------------------------------------------------------
- version: 2.39
-
- -- This set of tests tests the extended specification 'round-to-integral
- -- value' operation (from IEEE 854, later modified in 754r).
- -- All non-zero results are defined as being those from either copy or
- -- quantize, so those are assumed to have been tested.
- -- Note that 754r requires that Inexact not be set, and we similarly
- -- assume Rounded is not set.
-
- extended: 1
- precision: 9
- rounding: half_up
- maxExponent: 999
- minExponent: -999
-
- intx001 tointegral 0 -> 0
- intx002 tointegral 0.0 -> 0
- intx003 tointegral 0.1 -> 0
- intx004 tointegral 0.2 -> 0
- intx005 tointegral 0.3 -> 0
- intx006 tointegral 0.4 -> 0
- intx007 tointegral 0.5 -> 1
- intx008 tointegral 0.6 -> 1
- intx009 tointegral 0.7 -> 1
- intx010 tointegral 0.8 -> 1
- intx011 tointegral 0.9 -> 1
- intx012 tointegral 1 -> 1
- intx013 tointegral 1.0 -> 1
- intx014 tointegral 1.1 -> 1
- intx015 tointegral 1.2 -> 1
- intx016 tointegral 1.3 -> 1
- intx017 tointegral 1.4 -> 1
- intx018 tointegral 1.5 -> 2
- intx019 tointegral 1.6 -> 2
- intx020 tointegral 1.7 -> 2
- intx021 tointegral 1.8 -> 2
- intx022 tointegral 1.9 -> 2
- -- negatives
- intx031 tointegral -0 -> -0
- intx032 tointegral -0.0 -> -0
- intx033 tointegral -0.1 -> -0
- intx034 tointegral -0.2 -> -0
- intx035 tointegral -0.3 -> -0
- intx036 tointegral -0.4 -> -0
- intx037 tointegral -0.5 -> -1
- intx038 tointegral -0.6 -> -1
- intx039 tointegral -0.7 -> -1
- intx040 tointegral -0.8 -> -1
- intx041 tointegral -0.9 -> -1
- intx042 tointegral -1 -> -1
- intx043 tointegral -1.0 -> -1
- intx044 tointegral -1.1 -> -1
- intx045 tointegral -1.2 -> -1
- intx046 tointegral -1.3 -> -1
- intx047 tointegral -1.4 -> -1
- intx048 tointegral -1.5 -> -2
- intx049 tointegral -1.6 -> -2
- intx050 tointegral -1.7 -> -2
- intx051 tointegral -1.8 -> -2
- intx052 tointegral -1.9 -> -2
- -- next two would be NaN using quantize(x, 0)
- intx053 tointegral 10E+30 -> 1.0E+31
- intx054 tointegral -10E+30 -> -1.0E+31
-
- -- numbers around precision
- precision: 9
- intx060 tointegral '56267E-10' -> '0'
- intx061 tointegral '56267E-5' -> '1'
- intx062 tointegral '56267E-2' -> '563'
- intx063 tointegral '56267E-1' -> '5627'
- intx065 tointegral '56267E-0' -> '56267'
- intx066 tointegral '56267E+0' -> '56267'
- intx067 tointegral '56267E+1' -> '5.6267E+5'
- intx068 tointegral '56267E+2' -> '5.6267E+6'
- intx069 tointegral '56267E+3' -> '5.6267E+7'
- intx070 tointegral '56267E+4' -> '5.6267E+8'
- intx071 tointegral '56267E+5' -> '5.6267E+9'
- intx072 tointegral '56267E+6' -> '5.6267E+10'
- intx073 tointegral '1.23E+96' -> '1.23E+96'
- intx074 tointegral '1.23E+384' -> '1.23E+384'
- intx075 tointegral '1.23E+999' -> '1.23E+999'
-
- intx080 tointegral '-56267E-10' -> '-0'
- intx081 tointegral '-56267E-5' -> '-1'
- intx082 tointegral '-56267E-2' -> '-563'
- intx083 tointegral '-56267E-1' -> '-5627'
- intx085 tointegral '-56267E-0' -> '-56267'
- intx086 tointegral '-56267E+0' -> '-56267'
- intx087 tointegral '-56267E+1' -> '-5.6267E+5'
- intx088 tointegral '-56267E+2' -> '-5.6267E+6'
- intx089 tointegral '-56267E+3' -> '-5.6267E+7'
- intx090 tointegral '-56267E+4' -> '-5.6267E+8'
- intx091 tointegral '-56267E+5' -> '-5.6267E+9'
- intx092 tointegral '-56267E+6' -> '-5.6267E+10'
- intx093 tointegral '-1.23E+96' -> '-1.23E+96'
- intx094 tointegral '-1.23E+384' -> '-1.23E+384'
- intx095 tointegral '-1.23E+999' -> '-1.23E+999'
-
- -- subnormal inputs
- intx100 tointegral 1E-999 -> 0
- intx101 tointegral 0.1E-999 -> 0
- intx102 tointegral 0.01E-999 -> 0
- intx103 tointegral 0E-999 -> 0
-
- -- specials and zeros
- intx120 tointegral 'Inf' -> Infinity
- intx121 tointegral '-Inf' -> -Infinity
- intx122 tointegral NaN -> NaN
- intx123 tointegral sNaN -> NaN Invalid_operation
- intx124 tointegral 0 -> 0
- intx125 tointegral -0 -> -0
- intx126 tointegral 0.000 -> 0
- intx127 tointegral 0.00 -> 0
- intx128 tointegral 0.0 -> 0
- intx129 tointegral 0 -> 0
- intx130 tointegral 0E-3 -> 0
- intx131 tointegral 0E-2 -> 0
- intx132 tointegral 0E-1 -> 0
- intx133 tointegral 0E-0 -> 0
- intx134 tointegral 0E+1 -> 0E+1
- intx135 tointegral 0E+2 -> 0E+2
- intx136 tointegral 0E+3 -> 0E+3
- intx137 tointegral 0E+4 -> 0E+4
- intx138 tointegral 0E+5 -> 0E+5
- intx139 tointegral -0.000 -> -0
- intx140 tointegral -0.00 -> -0
- intx141 tointegral -0.0 -> -0
- intx142 tointegral -0 -> -0
- intx143 tointegral -0E-3 -> -0
- intx144 tointegral -0E-2 -> -0
- intx145 tointegral -0E-1 -> -0
- intx146 tointegral -0E-0 -> -0
- intx147 tointegral -0E+1 -> -0E+1
- intx148 tointegral -0E+2 -> -0E+2
- intx149 tointegral -0E+3 -> -0E+3
- intx150 tointegral -0E+4 -> -0E+4
- intx151 tointegral -0E+5 -> -0E+5
- -- propagating NaNs
- intx152 tointegral NaN808 -> NaN808
- intx153 tointegral sNaN080 -> NaN80 Invalid_operation
- intx154 tointegral -NaN808 -> -NaN808
- intx155 tointegral -sNaN080 -> -NaN80 Invalid_operation
- intx156 tointegral -NaN -> -NaN
- intx157 tointegral -sNaN -> -NaN Invalid_operation
-
- -- examples
- rounding: half_up
- precision: 9
- intx200 tointegral 2.1 -> 2
- intx201 tointegral 100 -> 100
- intx202 tointegral 100.0 -> 100
- intx203 tointegral 101.5 -> 102
- intx204 tointegral -101.5 -> -102
- intx205 tointegral 10E+5 -> 1.0E+6
- intx206 tointegral 7.89E+77 -> 7.89E+77
- intx207 tointegral -Inf -> -Infinity
-
-